﻿<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="Bookmark" href="/favicon.ico" >
<link rel="Shortcut Icon" href="/favicon.ico" />
<!--[if lt IE 9]>
<script type="text/javascript" src="/admin/lib/html5shiv.js"></script>
<script type="text/javascript" src="/admin/lib/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="/admin/lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui.admin/css/style.css" />
<!--[if IE 6]>
<script type="text/javascript" src="/admin/lib/DD_belatedPNG_0.0.8a-min.js" ></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet">
    {{--由于laravel的分页使用的分页样式是基于 bootstarp--}}
    {{--引入datatable插件--}}
            <!-- DataTables CSS -->
    <link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.15/css/jquery.dataTables.css">

    <!-- jQuery -->
    <script type="text/javascript" charset="utf8" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

    <!-- DataTables -->
    <script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.15/js/jquery.dataTables.js"></script>

<title>dt管理员列表</title>
</head>
<body>
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> dt管理员管理 <span class="c-gray en">&gt;</span> dt管理员列表 <a class="btn btn-success radius r btn-refresh" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
<div class="page-container">
	<div class="text-c"> 日期范围：
		<input type="text" onfocus="WdatePicker({ maxDate:'#F{$dp.$D(\'datemax\')||\'%y-%M-%d %h:%m:%s\'}' })" id="datemin" class="input-text Wdate" style="width:120px;">
		-
		<input type="text" onfocus="WdatePicker({ minDate:'#F{$dp.$D(\'datemin\')}',maxDate:'%y-%M-%d %h:%m:%s' })" id="datemax" class="input-text Wdate" style="width:120px;">
		<input type="text" class="input-text" style="width:250px" placeholder="输入dt管理员名称" id="search_name" name="">
		<button type="submit" class="btn btn-success" id="search_btn" name=""><i class="Hui-iconfont">&#xe665;</i> 搜用户</button>
	</div>
	<div class="cl pd-5 bg-1 bk-gray mt-20"> <span class="l"><a href="javascript:;" onclick="datadel()" class="btn btn-danger radius"><i class="Hui-iconfont">&#xe6e2;</i> 批量删除</a> <a href="javascript:;" onclick="admin_add('添加dt管理员','{{ url('admin/user/add') }}','800','500')" class="btn btn-primary radius"><i class="Hui-iconfont">&#xe600;</i> 添加dt管理员</a></span> <span class="r">共有数据：<strong>54</strong> 条</span> </div>
	<table class="table table-border table-bordered table-bg" id="datatable_user">
		<thead>
			<tr>
				<th scope="col" colspan="11">dt管理员列表</th>
			</tr>
			<tr class="text-c">
				<th width="25"><input type="checkbox" name="" value=""></th>
				<th width="40">ID</th>
				<th width="150">登录名</th>
				<th width="90">手机</th>
				<th width="150">邮箱</th>
				<th width="90">角色</th>
				<th width="130">加入时间</th>
				<th width="100">登录ip</th>
                <th width="100">登录次数</th>
                <th width="100">是否已启用</th>
                <th width="100">操作</th>
            </tr>
		</thead>
		<tbody>
            {{-- 使用datatable插件填充--}}
		</tbody>
	</table>
</div>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="/admin/lib/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="/admin/lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="/admin/static/h-ui/js/H-ui.min.js"></script> 
<script type="text/javascript" src="/admin/static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->

<!--请在下方写此页面业务相关的脚本-->
<script type="text/javascript" src="/admin/lib/My97DatePicker/4.8/WdatePicker.js"></script> 
<script type="text/javascript" src="/admin/lib/datatables/1.10.0/jquery.dataTables.min.js"></script> 
<script type="text/javascript" src="/admin/lib/laypage/1.2/laypage.js"></script>
<script type="text/javascript">

    /*
    * 整数转换为ip
    * */
    function numberToIp(number) {
        var ip = "";
        if(number <= 0) {
            return ip;
        }
        var ip3 = (number << 0 ) >>> 24;
        var ip2 = (number << 8 ) >>> 24;
        var ip1 = (number << 16) >>> 24;
        var ip0 = (number << 24) >>> 24

        ip += ip3 + "." + ip2 + "." + ip1 + "." + ip0;

        return ip;
    }

    // datatable插件使用
    var dataTable = $("#datatable_user").DataTable({
        "serverSide": true,
        "ajax": {
            "url" : '{{ url('/admin/user/datatable') }}',
            "type": 'post',
            // 传递给服务器的参数 是回调函数，回调函数的参数代表要传递给服务器的数据，本身data是datatable插件提供的，里面就传递了很多的数据信息
            "data": function(data) {
                data._token = "{{ csrf_token() }}";
                // 传递当前的页面 和 每页显示的数量 后端根据页面和每页数量来显示数据信息
                data.pageSize = data.length; // 每页数量
                // 页码计算
                data.page = data.start >= data.length ? Math.ceil( data.start / data.length
                ) + 1 : 1;
                // 传递用户查询的数据
                var _key_word = $.trim( $("#search_name").val() );
                data.keyWord = _key_word;
                data.datemin = $.trim( $("#datemin").val() );
                data.datemax = $.trim( $("#datemax").val() );

            }
        },
        "columns": [
            {data: null, defaultContent: '全选', bSortable: false}, // data为null代表当前列和数据的无关系
            {data: 'id'},
            {data: 'username'},
            {data: 'phoneNumber'},
            {data: 'email'},
            {data: null, defaultContent: '无角色', bSortable: false},
            {data: 'created_at'},
            {data: 'loginIp'},
            {data: 'loginTime'},
            {data: 'is_status'},
            {data: null, defaultContent: '操作', bSortable: false}
        ], // 定义每列和数据之间的关系 还要处理全选和操作列 需要注意：在datatable使用的过程中，当每一行被创建的时候，会触发一个回调函数，我们可以在该回调函数里面完成对当前行的操作。
        "createdRow": function(row, data){
            var $row = $(row); // 操作 第一个 和 最后一个
            $row.find('td').eq(0).html('<input type="checkbox" name="delAll" value="' + data.id + '">');
            $row.find('td').last().html('<a href="javascript:;" class="btn btn-success">编辑</a> <a href="javascript:;" data-id="'+ data.id +'" class="btn btn-danger del-user">删除</a>');
            // 处理是否启用
            if(data.is_status){
                $row.find('td').eq(9).html('<span class="label radius">已锁定</span>');
            }else{
                $row.find('td').eq(9).html('<span class="label label-success radius">已启用</span>');
            }
            $row.find('td').eq(7).html( numberToIp(data.loginIp) );
        },
        "lengthMenu": [[2, 10, 25, 50, 100], ['二', '十', '二十五', '五十', 'all']], // 定义每页显示的条数
        "order": [[ 1, 'desc' ]], // 定义页面加载时候，默认的排序规则
        "searching": false, // 关闭datatable自带的搜索功能
    });

    $("#search_btn").click(function(){
        // 点击用户搜索的时候，完成搜索功能
        var _key_word = $.trim( $("#search_name").val() );
       /* if(_key_word === ''){
            layer.msg('请输入搜索关键字！');
            return false;
        }*/
        // 希望发送ajax获取数据
        dataTable.ajax.reload();// 使用dataTable的ajax.reload方法可以重新发送请求，获取数据
    });

    $("#datatable_user").click(function(event){
        var _target = $(event.target);
        if( _target.hasClass('del-user') ){
            // 代表用户点击了删除
            // 要删除的主键id
            var _id = _target.attr('data-id');
            // ajax删除
            admin_del(_target, _id);
        }
    });
/*
	参数解释：
	title	标题
	url		请求的url
	id		需要操作的数据id
	w		弹出层宽度（缺省调默认值）
	h		弹出层高度（缺省调默认值）
*/
/*dt管理员-增加*/
function admin_add(title,url,w,h){
	layer_show(title,url,w,h);
}
/*dt管理员-删除*/
function admin_del(obj, id){
	layer.confirm('确认要删除吗？',function(index){
		$.ajax({
			type: 'POST', // post提交，设置 csrf_token
			url: '{{ url('/admin/user/del') }}', // 设置请求的url地址
			dataType: 'json',
            data:{'id': id, '_token': "{{ csrf_token() }}"},
			success: function(data){
                if(data.status == 'success'){
                    $(obj).parents("tr").remove(); // 当前行移除
                    layer.msg('删除成功!',{icon:2,time:4000}, function(){
                        // 第三个参数是一个回调函数，在时间到达后进行执行
                    }); // layer插件
                }else{
                    layer.msg('删除失败！',{icon:2,time:2000}); // layer插件
                }

			},
			error:function(data) {
				console.log(data.msg);
			},
		});		
	});
}

/*dt管理员-编辑*/
function admin_edit(title, url, w, h){
	layer_show(title,url,w,h); // 底层使用的是 layer.open()方法
   /* layer.open({
        type: 2,
        area: [w+'px', h +'px'],
        fix: false, //不固定
        maxmin: true,
        shade:0.4,
        title: title,
        content: url
    });*/
}
/*dt管理员-停用*/
function admin_status_change(obj,id){
    var _is_status = $(obj).attr('data-status'); // 代表要获取 data-status属性
    var _show_string = _is_status == 1 ? '启用' : '锁定';

	layer.confirm('确认要' + _show_string + '吗？',function(index){
		//此处请求后台程序，下方是成功后的前台处理……
        // ajax 操作
        $.ajax({
            type: 'POST', // post提交，设置 csrf_token
            url: '{{ url('/admin/user/isLocked') }}', // 设置请求的url地址
            dataType: 'json',
            data:{'id': id, '_token': "{{ csrf_token() }}"},
            success: function(data){
                if(data.status == 'success'){
                    // 在锁定完成后，需要修改状态 1. 状态 2. 样式
                    var span = $(obj).parents('.td-manage').prev('.td-status').find('span');// 查找该元素的先辈的元素 爹 爷爷....
                    $(obj).attr('data-status', _is_status == 1 ? 0 : 1 );

                    if( _is_status == 1){
                        span.html('已启用').addClass('label-success');
                    }else{
                        span.html('已锁定').removeClass('label-success');
                    }
                    layer.msg(data.msg, {icon:1,time:4000}); // layer插件
                }else{
                    layer.msg('删除失败！',{icon:2,time:2000}); // layer插件
                }

            },
            error:function(data) {
                console.log(data.msg);
            },
        });
	});
}
</script>
</body>
</html>